package com.cy.store.interceptor;

import com.cy.store.util.JsonResult;
import org.apache.catalina.security.SecurityUtil;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.security.auth.Subject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.security.Security;
import java.util.function.Predicate;

/**
 * 定义一个拦截器
 */
public class LoginInterceptor implements HandlerInterceptor {

    /**
     * 检测全局session对象中是否有uid数据，如果有则放行，如果没有则重订到登录页面
     * @param request 请求
     * @param response 响应
     * @param handler url+controller
     * @return 返回值为true表示放行当前的请求，false则表示拦截
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        if (HttpMethod.OPTIONS.toString().equals(request.getMethod()))
        {
            return true;
        }

        //接收请求头中test1的数据
//        System.out.println(request.getHeader("test1"));

/**
 * 如果session对象的uid为null，则表示用户没有登录（session为全局变量），页面将跳转到login.html.getAttribute("key") 获取session中为key的值。
 */

        if (request.getSession().getAttribute("uid") == null) {
//          response.sendRedirect("/web/login.html");
          response.getWriter().print("szy");  //响应给客户端的参数
            return false;
        }
        //否则，放行
        return true;
    }

}
